from flask import Flask,request     # --> 导入flask模块中的Flask类    ！注意区分大小写，flask是模块名，Flask是类名
from flask import render_template    # -->导入flask模块中自带的一个渲染模板 可以在渲染模板中修改你想要的模板 调用render_template函数可以使你的函数返回一个HTML表单
# 补充：后面使用视图函数中要记得在这里添加所使用到的函数
app = Flask(__name__)     # 创建Flask对象的一个实例 并把它赋给 app
# 补充：创建一个新的Flask对象时，Flask类需要知道__name__的当前值。 __name__  这个是必需的这样 Flask 才能知道在哪里可以找到模板和静态文件等东西。
# 1.登记路由： route
@app.route('/',methods=["GET","POST"])   # / 根路径，首页， 相对路径；methods:表示这个URL所支持的html方法； route() 装饰器的 methods 参数用来处理不同的 HTTP 方法 常用的是GET和POST方法
# 补充：这是函数修饰符@app,route 即带有@;使用 route() 装饰器来把函数绑定到 URL;括号里面是URL，route修饰符允许把一个网页路径与一个已有的python函数关联，这里'/'将会和下一行定义的代码关联
# 2.视图函数 ，返回值为页面的显示信息，格式：文本txt、html、json等
def hello_world():  # put application's code here
    return '<h1><font style="color:blue">Hello World!</font></h1>'   # 加上<h1></h1>就把内容文本转变为html
# 以上这两行代码都是python函数

@app.route('/index',methods=['GET','POST'])     # 这里修改了路径，路由为 /index
def index():      # 一般上为了方便会把函数名和URL的关联的下个路由名相类似   /index <--> def index()
    return render_template('index.html')    # 这是开始的界面

@app.route('/result',methods=['GET','POST'])
def build_name():
    # 用户输入的信息是在 request（请求）中的
    first_name = request.form['firstname']  # 调用request对象时一定要在最前面模块的导入中，在前面的导入列表中添加上
    last_name = request.form['lastname']
    full_name = first_name.title() + ' ' + last_name.title()   # 在用户按下do it后跳转出的页面为用户全名的大写
    return render_template('fullname_result.html',
                           fullname= 'hello dear'+' '+full_name)

if __name__ == '__main__':
    app.run()    # 让web应用运行
